using System.IO;
using System.Xml;

namespace Altova.IO
{
	public abstract class Input
	{
		public enum InputType
		{
			Reader,
			Stream,
			XmlDocument
		}

		private InputType type;

		public InputType Type
		{
			get
			{
				return type;
			}
		}

		public abstract TextReader Reader { get; }

		public abstract Stream Stream { get; }

		public abstract XmlDocument Document { get; }

		public virtual string Filename
		{
			get
			{
				return "";
			}
		}

		public Input(InputType t)
		{
			type = t;
		}

		public virtual void Close()
		{
		}
	}
}
